#ifndef ENCFFMPEG_H
#define ENCFFMPEG_H


#ifdef _WIN32
//Windows
extern "C"
{
#include "libavutil/opt.h"
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
}

#else
//Linux...
#ifdef __cplusplus
extern "C"
{
#endif
#include <libavutil/opt.h>
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#ifdef __cplusplus
};
#endif
#endif
typedef struct
{
  const AVCodec *codec;
  AVCodecContext *ctx;
  AVFrame *frame;
  AVPacket *pkt;
  int       nSeq;
  int       nChannel;
}stFFMpegCtx;


void  encFFMpegInit(stFFMpegCtx*  pstFFMmpeg,int nChannel,
                    int nWidth,int nHeight,
                    int   src_fmt,
                    int   code_type,
                    int   in_fps);
int   encFFMpegPutFrame(stFFMpegCtx*  pstFFMmpeg,uint8_t* pRGB24Src,uint8_t*  pH265Pack);
int   encFFMpegRelease(stFFMpegCtx*  pstFFMmpeg);


#endif // ENCFFMPEG_H
